﻿Imports SistemaINCA.Security
Imports SistemaINCA.Models.ViewModels

Namespace Models

    Public Interface IActividadesEva
        '<Authorize(Roles:="ERA")> _
        'Function GetActividadesDefault() As List(Of ACTIVIDADES_DEF_TEMP)

        '<Authorize(Roles:="ERA")> _
        'Function GetActividadesDefaultTable() As List(Of ActividadDefaultModel)

        '<Authorize(Roles:="ERA")> _
        'Function InsertActividadDefault_DataTemp(Nombre As String, Porcentaje As Integer, Edit As Boolean, ByRef msgError As String) As Boolean

        '<Authorize(Roles:="ERA")> _
        'Function DeleteActividadDefault_DataTemp(ID As String, ByRef msgError As String) As Boolean

        '<Authorize(Roles:="ERA")> _
        'Function UpdateActividadesDefault_DataTemp(ID As String, Nombre As String, Porcentaje As Integer, Edit As Boolean, msgError As String) As Boolean

        '<Authorize(Roles:="ERA")> _
        'Function CalcularTotalActividadesDefault_DataTemp() As Integer

        '<Authorize(Roles:="ERA")> _
        'Function Save_AllChanges_ActividadesDefault(ByRef msgError As String) As Boolean
    End Interface

    Partial Public Class SchoolClickDB_Repositorio
        Implements IActividadesEva

        Public ReadOnly Property IActividadesEva() As IActividadesEva
            Get
                Return DirectCast(Me, IActividadesEva)
            End Get
        End Property

        'Private Function GetActividadesDefault() As System.Collections.Generic.List(Of ACTIVIDADES_DEF_TEMP) Implements IActividadesEva.GetActividadesDefault
        '    Try
        '        Using cnn As New SchoolClickEntities
        '            'Obtenemos los datos de la tabla temporal
        '            Return cnn.GET_ACT_TEMP(EncryptationSchoolClick.ToStringInseguro(EncryptationSchoolClick.DesencriptarData(My.Resources.PasswordsEncrypts.ERA_ROL_PUBLIC))).ToList
        '        End Using
        '    Catch ex As Exception
        '        Throw New ApplicationException(ex.InnerException.Message)
        '    End Try
        'End Function

        'Private Function GetActividadesDefaultTable() As System.Collections.Generic.List(Of ViewModels.ActividadDefaultModel) Implements IActividadesEva.GetActividadesDefaultTable
        '    Try
        '        Using cnn As New SchoolClickEntities
        '            Dim lst = New List(Of ActividadDefaultModel)
        '            Dim iNum As Integer = 1
        '            'Recorremos todas las actividades y las adaptamos al modelo
        '            For Each act In Me.IActividadesEva.GetActividadesDefault
        '                lst.Add(New ActividadDefaultModel With {.ID = act.ID, .Nombre = act.Nombre,
        '                                                        .Num = iNum,
        '                                                        .Porcentaje = act.Porcentaje,
        '                                                        .PorcentajeString = String.Format("{0}%", act.Porcentaje),
        '                                                        .Editable = act.Editable,
        '                                                        .DescEditable = If(act.Editable, "El Maestro podrá desglosar esta evaluación", "Esta actividad no se podrá desglosar"),
        '                                                        .Estado = act.Estado})
        '                iNum += 1
        '            Next
        '            Return lst
        '        End Using
        '    Catch ex As Exception
        '        Throw New ApplicationException(String.Format("Lo sentimos, no se pudo recuperar las actividades evaluativas del sistema. {0}", ex.InnerException.Message))
        '    End Try
        'End Function

        'Private Function InsertActividadDefault_DataTemp(Nombre As String, Porcentaje As Integer, Edit As Boolean, ByRef msgError As String) As Boolean Implements IActividadesEva.InsertActividadDefault_DataTemp
        '    Dim eCompleted As Boolean = False
        '    Using cnn As New SchoolClickEntities
        '        Try
        '            Dim bResult = cnn.INS_ACTxDEFAULT_TEMP(Nombre, Porcentaje, Edit, _
        '                                                   EncryptationSchoolClick.ToStringInseguro(EncryptationSchoolClick.DesencriptarData(My.Resources.PasswordsEncrypts.ERA_ROL))).Single
        '            If Not bResult.Equals("ERR") Then
        '                msgError = bResult
        '                eCompleted = True
        '            Else
        '                msgError = "No se puede insertar la actividad por defecto en el sistema"
        '            End If
        '        Catch ex As EntityCommandExecutionException
        '            msgError = ex.InnerException.Message
        '            ex.Data.Clear()
        '        Catch ex As Exception
        '            'OPTIONAL: Si existiera un error durante toda la operacion, unicamente la interceptamos y la ignoramos.
        '            'Solo tomaremos el mensaje del error y lo regresaremos en la variable delo mensaje de error
        '            msgError = FormatErrorMessage(My.Resources.ErrorMessageResources.Error_Update_Data, ex.Message)
        '            ex.Data.Clear()
        '        End Try
        '    End Using
        '    Return eCompleted
        'End Function

        'Private Function DeleteActividadDefault_DataTemp(ID As String, ByRef msgError As String) As Boolean Implements IActividadesEva.DeleteActividadDefault_DataTemp
        '    Dim eCompleted As Boolean = False
        '    Using cnn As New SchoolClickEntities
        '        Try
        '            Dim bResult = cnn.DEL_ACTxDEFAULT_DATATEMP(ID, EncryptationSchoolClick.ToStringInseguro(EncryptationSchoolClick.DesencriptarData(My.Resources.PasswordsEncrypts.ERA_ROL))).Single()
        '            If bResult Then
        '                eCompleted = True
        '            Else
        '                msgError = "No se puede eliminar la actividad en el sistema"
        '            End If
        '        Catch ex As EntityCommandExecutionException
        '            msgError = ex.InnerException.Message
        '            ex.Data.Clear()
        '        Catch ex As Exception
        '            'OPTIONAL: Si existiera un error durante toda la operacion, unicamente la interceptamos y la ignoramos.
        '            'Solo tomaremos el mensaje del error y lo regresaremos en la variable delo mensaje de error
        '            msgError = FormatErrorMessage(My.Resources.ErrorMessageResources.Error_Update_Data, ex.Message)
        '            ex.Data.Clear()
        '        End Try
        '    End Using
        '    Return eCompleted
        'End Function

        'Private Function UpdateActividadesDefault_DataTemp(ID As String, Nombre As String, Porcentaje As Integer, Edit As Boolean, msgError As String) As Boolean Implements IActividadesEva.UpdateActividadesDefault_DataTemp
        '    Dim eCompleted As Boolean = False
        '    Using cnn As New SchoolClickEntities
        '        Try
        '            Dim bResult = cnn.UPT_ACTxDEFAULT_TEMP(ID, Nombre, Porcentaje, Edit, _
        '                                                   EncryptationSchoolClick.ToStringInseguro(EncryptationSchoolClick.DesencriptarData(My.Resources.PasswordsEncrypts.ERA_ROL))).Single()
        '            If bResult Then
        '                eCompleted = True
        '            Else
        '                msgError = "No se pudo actualizar la actividad en el sistema"
        '            End If
        '        Catch ex As EntityCommandExecutionException
        '            msgError = ex.InnerException.Message
        '        Catch ex As Exception
        '            'OPTIONAL: Si existiera un error durante toda la operacion, unicamente la interceptamos y la ignoramos.
        '            'Solo tomaremos el mensaje del error y lo regresaremos en la variable delo mensaje de error
        '            msgError = FormatErrorMessage(My.Resources.ErrorMessageResources.Error_Update_Data, ex.Message)
        '        End Try
        '    End Using
        '    Return eCompleted
        'End Function

        'Private Function CalcularTotalActividadesDefault_DataTemp() As Integer Implements IActividadesEva.CalcularTotalActividadesDefault_DataTemp
        '    Try
        '        Using cnn As New SchoolClickEntities
        '            Return cnn.CALCULAR_TOTAL_ACTxDEFAULT.Single
        '        End Using
        '    Catch ex As Exception
        '        Throw New ApplicationException(String.Format("Lo sentimos, no se pudo calcular el total de las actividades. {0}", ex.InnerException.Message))
        '    End Try
        'End Function

        'Private Function Save_AllChanges_ActividadesDefault(ByRef msgError As String) As Boolean Implements IActividadesEva.Save_AllChanges_ActividadesDefault
        '    Dim eCompleted As Boolean = False
        '    Using cnn As New SchoolClickEntities
        '        Try
        '            Dim bResult = cnn.SAVE_ACTxDEFAULT_TEMP(EncryptationSchoolClick.ToStringInseguro(EncryptationSchoolClick.DesencriptarData(My.Resources.PasswordsEncrypts.ERA_ROL))).Single()
        '            If bResult Then
        '                eCompleted = True
        '            Else
        '                msgError = "No se pudieron guardar los cambios de todas las actividades"
        '            End If
        '        Catch ex As EntityCommandExecutionException
        '            msgError = ex.InnerException.Message
        '        Catch ex As Exception
        '            'OPTIONAL: Si existiera un error durante toda la operacion, unicamente la interceptamos y la ignoramos.
        '            'Solo tomaremos el mensaje del error y lo regresaremos en la variable delo mensaje de error
        '            msgError = FormatErrorMessage(My.Resources.ErrorMessageResources.Error_Update_Data, ex.Message)
        '        End Try
        '    End Using
        '    Return eCompleted
        'End Function
    End Class
End Namespace
